package mua.core.operation;

import java.util.Arrays;

public class Operations {
    //所有操作
    public static java.util.List<String> operation;
    static {
        operation =Arrays.asList(
            //取值操作
            "thing",
            //绑定操作
            "make",
            //打印操作
            "print",
            //读取操作
            "read",
            //加法运算符
            "add",
            //减法
            "sub",
            //乘法
            "mul",
            //除法
            "div",
            //取余
            "mod",
            //清除word绑定值
            "erase",
            //返回word是否一个名字
            "isname",
            //运行list中的代码
            "run",
            //equal，等于
            "eq",
            //greater than，大于
            "gt",
            //less than，小于
            "lt",
            // 且
            "and",
            //或
            "or",
            //非
            "not",
            //if <bool> <list1> <list2> ：如果bool为真，则执⾏list1，否则执⾏list2。
            "if",
            //返回value是否为数字
            "isnumber",
            //返回value是否是字
            "isword",
            //是否为表
            "islist",
            //是否为布尔量
            "isbool",
            //返回word或list是否是空
            "isempty",
            //函数中的return
            "return",
            //函数中的export
            "export",
            //读取list
            "readlist",
            //合并两个字符串
            "word",
            //合并两个value变为一个list
            "sentence",
            //合并两个value，不打开表（值如果是表，则作为元素放到新表里）
            "list",
            //将第二个值作为list最后的一个元素加到新的list中
            "join",
            //返回word第一个字符或list第一个元素
            "first",
            //返回最后
            "last",
            //返回除了第一个
            "butfirst",
            //返回除最后一个
            "butlast",
            //返回一个随机数
            "random",
            //返回小于等于int的最大的整数
            "int",
            //返回number的平方根
            "sqrt",
            //保存当前命名空间在word文件中，返回文件名
            "save",
            //从word文件中装载内容，加入到当前命名空间，返回true
            "load",
            //清除当前命名空间的全部内容，返回true
            "erall",
            //返回当前命名空间的全部名字的list
            "poall"
        );
    }

    public static boolean contains(String operation) {
        for(String opt: Operations.operation){
            if(operation.equals(opt)){
                return true;
            }
        }
        return false;
    }
}
